100 SYS65517:IFPEEK(781)=22THENMT$="":GOTO2999 110 MT$="" 2998 REM END: REM PROGRAM 3, UNSCRATCH FILES 2999 PRINTMT$ 3000 INPUT "[147]WHICH SECTOR";S$: S=VAL(S$): IF S<0 OR S>19 THEN 3000 3010 PRINT "WHAT IS THE FIRST BYTE":PRINT"OF THE FILE YOU WISH" 3011 PRINT"TO UNSCRATCH?" 3020 INPUT BP$: BP=VAL(BP$): REM INPUT FILE TARGET BYTE FOR UNSCRATCH 3030 BS=(BP=2)+(BP=34)+(BP=66)+(BP=98)+(BP=130)+(BP=162)+(BP=194)+(BP=226) 3035 IFBS<>-1THEN3020:REM REJECT INVALID INPUT 3040 PRINT "SELECT FILE TYPE:" 3050 PRINT " 1. SEQUENTIAL" 3060 PRINT " 2. PROGRAM" 3070 PRINT " 3. USER" 3080 PRINT " 4. RELATIVE" 3090 PRINT "WHICH ONE?" 3100 GET A$: IF A$="" THEN 3100 3110 A=VAL(A$): IF A<1 OR A>4 THEN 3100: REM REJECT INVALID CHOICE 3120 B=A+128: REM SET INPUT BYTE TO MATCH DOS FILE CODES 3130 OPEN 15,8,15,"I": REM OPEN COMMAND CHANNEL TO DISK 3140 OPEN8,8,8,"#": REM OPEN DIRECT ACCESS CHANNEL TO DISK 3150 PRINT#15, "U1:"8;0;18;S: REM LOAD SECTOR CONTAINING FILE TO BE UNSCRATCHED 3160 PRINT#15, "B-P:"8;BP: REM SET BUFFER POINTER TO TARGET ADDRESS 3170 PRINT#8, CHR$(B);: REM CHANGE TARGET FILE CODE IN CHANNEL 8 BUFFER 3180 PRINT#15, "U2:"8;0;18;S: REM RETURN CHANGED CONTENTS TO TARGET SECTOR 3190 CLOSE 8: REM CLOSE DIRECT ACCESS CHANNEL 3200 CLOSE 15: REM CLOSE COMMAND CHANNEL 3210 REM GOTO 100: REM RESTART DISPLAY T&S PROGRAM WHEN FIRST REM REMOVED